package com.hr.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hr.entity.Users;
import com.hr.mapper.UsersMapper;
import com.hr.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UsersServiceImpl
        implements UsersService {
    @Autowired
    private UsersMapper usersMapper;

    /**
     * 分页查询
     * @param page
     * @return
     */
    @Override
    public Page<Users> queryList(Page<Users> page) {
        //        return usersMapper.selectList(new QueryWrapper<Users>());
//        //分页参数
//        Page<Users> page = new Page<>();
//        //设置当前页码
//        page.setCurrent(2);
//        //每页显示记录数
//        page.setSize(5);
//        QueryWrapper<Users> queryWrapper = new QueryWrapper<Users>();
//
//        //mybatis plugs提供共的 查询一页的数据的方法
//        page = usersMapper.selectPage(page, queryWrapper);
//        //返回此页的信息数据
//        return page;
        //自定义sql配合mybatis plugs完成的分页查询
        page = usersMapper.queryList(page);
        return page;
    }

    /**
     * 保存/修改
     * @param user
     * @return
     */
    @Override
    public boolean save(Users user) {
        int rows = 0;
        if(user.getUid() == null){
            //插入数据
            rows = usersMapper.insert(user);
        }else{
            //根据id修改用户
            rows = usersMapper.updateById(user);
        }
        return rows > 0;
    }

    /**
     * 删除
     * @param uid
     * @return
     */
    @Override
    public boolean delete(Integer uid) {
        //调用mybatis plugs 提供的根据id删除数据的方法
        int rows = usersMapper.deleteById(uid);
        return rows > 0;
    }

    /**
     * 根据id单值查询
     * @param uid
     * @return
     */
    @Override
    public Users queryById(Integer uid) {
        Users users = usersMapper.selectById(uid);
        return users;
    }
}
